﻿#ifndef SRDEMUX_H
#define SRDEMUX_H

#include "ffmpeg.h"

class SrDemux
{
public:
    SrDemux();
    //主要是利于子类去释放
    virtual ~SrDemux();

    //打开媒体 rtmp地址
    virtual bool Open(const char *url);

	virtual bool IsAudio(AVPacket *pkt);

    //关注释放

    virtual AVPacket* Read();

    // 获取视频参数  返回的空间需要清理 avcodec_parameters_free()
    AVCodecParameters *CopyVPara();

    // 获取音频参数  返回的空间需要清理 avcodec_parameters_free()
    AVCodecParameters *CopyAPara();

	//seek 位置 pos 0.0 ~1.0
	virtual bool Seek(double pos);

    virtual void Close();
public:
    int _width = 0;
    int _height = 0;

    int _sampleRate = 0;
    int _channels = 0;



private:

    //输入文件的上下文
    AVFormatContext *_pFormatCtx = NULL;

    //音频索引
    int _audioStreamIndex;
    //视频索引
    int _videoStreamIndex;

};

#endif // SRDEMUX_H
